<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<title>OpenCV: cv::legacy::MultiTrackerTLD Class Reference</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon" />
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<script type="text/javascript" src="../../tutorial-utils.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
   &#160;<span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="../../d2/d75/namespacecv.html">cv</a></li><li class="navelem"><a class="el" href="../../d7/d04/namespacecv_1_1legacy.html">legacy</a></li><li class="navelem"><a class="el" href="../../df/d6f/classcv_1_1legacy_1_1MultiTrackerTLD.html">MultiTrackerTLD</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="../../dc/dac/classcv_1_1legacy_1_1MultiTrackerTLD-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">cv::legacy::MultiTrackerTLD Class Reference<div class="ingroups"><a class="el" href="../../d9/df8/group__tracking.html">Tracking API</a> &raquo; <a class="el" href="../../dc/d6b/group__tracking__legacy.html">Legacy Tracking API</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Multi Object Tracker for TLD.  
 <a href="../../df/d6f/classcv_1_1legacy_1_1MultiTrackerTLD.html#details">More...</a></p>

<p><code>#include &lt;opencv2/tracking/tracking_legacy.hpp&gt;</code></p>
<div class="dynheader">
Inheritance diagram for cv::legacy::MultiTrackerTLD:</div>
<div class="dyncontent">
 <div class="center">
  <img src="../../df/d6f/classcv_1_1legacy_1_1MultiTrackerTLD.png" usemap="#cv::legacy::MultiTrackerTLD_map" alt=""/>
  <map id="cv::legacy::MultiTrackerTLD_map" name="cv::legacy::MultiTrackerTLD_map">
<area href="../../d8/d45/classcv_1_1legacy_1_1MultiTracker__Alt.html" title="Base abstract class for the long-term Multi Object Trackers: " alt="cv::legacy::MultiTracker_Alt" shape="rect" coords="0,0,170,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1d3ca4068526962bc7189ff4091bed7b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d6f/classcv_1_1legacy_1_1MultiTrackerTLD.html#a1d3ca4068526962bc7189ff4091bed7b">update_opt</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga353a9de602fe76c709e12074a6f362ba">InputArray</a> image)</td></tr>
<tr class="memdesc:a1d3ca4068526962bc7189ff4091bed7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update all trackers from the tracking-list, find a new most likely bounding boxes for the targets by optimized update method using some techniques to speedup calculations specifically for MO TLD. The only limitation is that all target bounding boxes should have approximately same aspect ratios. Speed boost is around 20%.  <a href="#a1d3ca4068526962bc7189ff4091bed7b">More...</a><br /></td></tr>
<tr class="separator:a1d3ca4068526962bc7189ff4091bed7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classcv_1_1legacy_1_1MultiTracker__Alt"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classcv_1_1legacy_1_1MultiTracker__Alt')"><img src="../../closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="../../d8/d45/classcv_1_1legacy_1_1MultiTracker__Alt.html">cv::legacy::MultiTracker_Alt</a></td></tr>
<tr class="memitem:a3aa418377402213afa91c9e96e7f743e inherit pub_methods_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d45/classcv_1_1legacy_1_1MultiTracker__Alt.html#a3aa418377402213afa91c9e96e7f743e">MultiTracker_Alt</a> ()</td></tr>
<tr class="memdesc:a3aa418377402213afa91c9e96e7f743e inherit pub_methods_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for Multitracker.  <a href="../../d8/d45/classcv_1_1legacy_1_1MultiTracker__Alt.html#a3aa418377402213afa91c9e96e7f743e">More...</a><br /></td></tr>
<tr class="separator:a3aa418377402213afa91c9e96e7f743e inherit pub_methods_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10569f68a7b4b4ef8f7fd16a92191765 inherit pub_methods_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d45/classcv_1_1legacy_1_1MultiTracker__Alt.html#a10569f68a7b4b4ef8f7fd16a92191765">addTarget</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga353a9de602fe76c709e12074a6f362ba">InputArray</a> image, const <a class="el" href="../../dc/d84/group__core__basic.html#ga894fe0940d40d4d65f008a2ca4e616bd">Rect2d</a> &amp;boundingBox, <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../db/dfe/classcv_1_1legacy_1_1Tracker.html">legacy::Tracker</a> &gt; tracker_algorithm)</td></tr>
<tr class="memdesc:a10569f68a7b4b4ef8f7fd16a92191765 inherit pub_methods_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a new target to a tracking-list and initialize the tracker with a known bounding box that surrounded the target.  <a href="../../d8/d45/classcv_1_1legacy_1_1MultiTracker__Alt.html#a10569f68a7b4b4ef8f7fd16a92191765">More...</a><br /></td></tr>
<tr class="separator:a10569f68a7b4b4ef8f7fd16a92191765 inherit pub_methods_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a011a1d1819f62fb6321accb8d152323d inherit pub_methods_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d45/classcv_1_1legacy_1_1MultiTracker__Alt.html#a011a1d1819f62fb6321accb8d152323d">update</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga353a9de602fe76c709e12074a6f362ba">InputArray</a> image)</td></tr>
<tr class="memdesc:a011a1d1819f62fb6321accb8d152323d inherit pub_methods_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update all trackers from the tracking-list, find a new most likely bounding boxes for the targets.  <a href="../../d8/d45/classcv_1_1legacy_1_1MultiTracker__Alt.html#a011a1d1819f62fb6321accb8d152323d">More...</a><br /></td></tr>
<tr class="separator:a011a1d1819f62fb6321accb8d152323d inherit pub_methods_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_attribs_classcv_1_1legacy_1_1MultiTracker__Alt"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classcv_1_1legacy_1_1MultiTracker__Alt')"><img src="../../closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="../../d8/d45/classcv_1_1legacy_1_1MultiTracker__Alt.html">cv::legacy::MultiTracker_Alt</a></td></tr>
<tr class="memitem:a1fa7984cc06c32569fa7e1c0abd1e1b7 inherit pub_attribs_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga894fe0940d40d4d65f008a2ca4e616bd">Rect2d</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d45/classcv_1_1legacy_1_1MultiTracker__Alt.html#a1fa7984cc06c32569fa7e1c0abd1e1b7">boundingBoxes</a></td></tr>
<tr class="memdesc:a1fa7984cc06c32569fa7e1c0abd1e1b7 inherit pub_attribs_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bounding Boxes list for Multi-Object-Tracker.  <a href="../../d8/d45/classcv_1_1legacy_1_1MultiTracker__Alt.html#a1fa7984cc06c32569fa7e1c0abd1e1b7">More...</a><br /></td></tr>
<tr class="separator:a1fa7984cc06c32569fa7e1c0abd1e1b7 inherit pub_attribs_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f5231cbbbbfba7a82f77947a583bd2e inherit pub_attribs_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">Scalar</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d45/classcv_1_1legacy_1_1MultiTracker__Alt.html#a1f5231cbbbbfba7a82f77947a583bd2e">colors</a></td></tr>
<tr class="memdesc:a1f5231cbbbbfba7a82f77947a583bd2e inherit pub_attribs_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="mdescLeft">&#160;</td><td class="mdescRight">List of randomly generated colors for bounding boxes display.  <a href="../../d8/d45/classcv_1_1legacy_1_1MultiTracker__Alt.html#a1f5231cbbbbfba7a82f77947a583bd2e">More...</a><br /></td></tr>
<tr class="separator:a1f5231cbbbbfba7a82f77947a583bd2e inherit pub_attribs_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24ab814721f0a04bd68b58751b59d8c1 inherit pub_attribs_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d45/classcv_1_1legacy_1_1MultiTracker__Alt.html#a24ab814721f0a04bd68b58751b59d8c1">targetNum</a></td></tr>
<tr class="memdesc:a24ab814721f0a04bd68b58751b59d8c1 inherit pub_attribs_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current number of targets in tracking-list.  <a href="../../d8/d45/classcv_1_1legacy_1_1MultiTracker__Alt.html#a24ab814721f0a04bd68b58751b59d8c1">More...</a><br /></td></tr>
<tr class="separator:a24ab814721f0a04bd68b58751b59d8c1 inherit pub_attribs_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00670f634e4519cd38a8a180d3c5ad0c inherit pub_attribs_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../db/dfe/classcv_1_1legacy_1_1Tracker.html">Tracker</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../d8/d45/classcv_1_1legacy_1_1MultiTracker__Alt.html#a00670f634e4519cd38a8a180d3c5ad0c">trackers</a></td></tr>
<tr class="memdesc:a00670f634e4519cd38a8a180d3c5ad0c inherit pub_attribs_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Trackers list for Multi-Object-Tracker.  <a href="../../d8/d45/classcv_1_1legacy_1_1MultiTracker__Alt.html#a00670f634e4519cd38a8a180d3c5ad0c">More...</a><br /></td></tr>
<tr class="separator:a00670f634e4519cd38a8a180d3c5ad0c inherit pub_attribs_classcv_1_1legacy_1_1MultiTracker__Alt"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Multi Object Tracker for TLD. </p>
<p>TLD is a novel tracking framework that explicitly decomposes the long-term tracking task into tracking, learning and detection.</p>
<p>The tracker follows the object from frame to frame. The detector localizes all appearances that have been observed so far and corrects the tracker if necessary. The learning estimates detector's errors and updates it to avoid these errors in the future. The implementation is based on <a class="el" href="../../d0/de3/citelist.html#CITEREF_TLD">[125]</a> .</p>
<p>The Median Flow algorithm (see cv::TrackerMedianFlow) was chosen as a tracking component in this implementation, following authors. The tracker is supposed to be able to handle rapid motions, partial occlusions, object absence etc.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../db/dfe/classcv_1_1legacy_1_1Tracker.html" title="Base abstract class for the long-term tracker: ">Tracker</a>, <a class="el" href="../../df/d4a/classcv_1_1legacy_1_1MultiTracker.html" title="This class is used to track multiple objects using the specified tracker algorithm. ">MultiTracker</a>, <a class="el" href="../../d1/da6/classcv_1_1legacy_1_1TrackerTLD.html" title="the TLD (Tracking, learning and detection) tracker ">TrackerTLD</a> </dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a1d3ca4068526962bc7189ff4091bed7b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d3ca4068526962bc7189ff4091bed7b">&#9670;&nbsp;</a></span>update_opt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cv::legacy::MultiTrackerTLD::update_opt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga353a9de602fe76c709e12074a6f362ba">InputArray</a>&#160;</td>
          <td class="paramname"><em>image</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Update all trackers from the tracking-list, find a new most likely bounding boxes for the targets by optimized update method using some techniques to speedup calculations specifically for MO TLD. The only limitation is that all target bounding boxes should have approximately same aspect ratios. Speed boost is around 20%. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">image</td><td>The current frame.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True means that all targets were located and false means that tracker couldn't locate one of the targets in current frame. Note, that latter <em>does not</em> imply that tracker has failed, maybe target is indeed missing from the frame (say, out of sight) </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>opencv2/tracking/<a class="el" href="../../dc/d14/tracking__legacy_8hpp.html">tracking_legacy.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:47 for OpenCV by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
